import { message } from "antd"

/**
 * * 获取对象的指定key的值
 * ! TODO:临时使用，后续考虑使用lodash或者完善一下方法
 * @param {*} obj
 * @param {*} path
 * @param {*} defaultValue
 * @returns {*}
 */
export function getObjectPropertyValue(obj, path, defaultValue) {
  if (typeof path === 'string') {
    path = path.split('.')
  }

  if (!path || path.length === 0) {
    return obj
  }

  let result = obj
  for (let i = 0; i < path.length; i++) {
    if (result === null || result === undefined) {
      return defaultValue
    }
    result = result[path[i]]
  }

  return result
}

/**
 * * 修改对象的指定key的值
 * ! TODO:临时使用，后续考虑使用lodash或者完善一下方法
 * @param {*} obj
 * @param {*} path
 * @param {*} defaultValue
 * @returns {*}
 */
export function setObjectPropertyValue(obj, path, value) {
  let pathAry = []
  if (typeof path === 'string') {
    pathAry = path.split('.')
  }

  if (!obj) {
    message.error("无效的参数")
    return obj
  }
  
  let current = obj
  for (let i = 0; i < pathAry.length - 1; i++) {
    let key = pathAry[i]

    if (typeof current[key] === 'undefined') {
      current[key] = {}
    }
    current = current[key]
  }

  current[pathAry.slice(-1)] = value

  return obj
}
